package org.jeecg.modules.monitoring.j_monitoring.mapper;
import org.jeecg.modules.monitoring.j_monitoring.entity.software.LicenseSoftware;

import java.util.List;

import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.monitoring.j_monitoring.entity.software.*;

/**
 * @Description: 软件许可Mapper
 * @Author: xiaoyq
 * @Date:   2023-09-05
 * @Version: V1.0
 */

@DS("software")
public interface LicenseSoftwareMapper extends BaseMapper<LicenseSoftware> {
    /**
     * 获得许可公司实时数据
     * @param name
     * @return
     */
    List<LicenseRealtimedataAllcompany> modelUsed(@Param("name")String name);

    /**
     * 使用频率
     * @param countField
     * @param year
     * @param name
     * @return
     */
    FrequencyCount usedFrequency(@Param("countField")String countField,@Param("year")String year,@Param("name")String name);

    /**
     * 软件用户
     * @param name
     * @return
     */
    SoftUserCount softUser(@Param("name")String name);

    /**
     * 软件用户--MYSQL
     * @param name
     * @return
     */
    SoftUserCount softUserMysql(@Param("name")String name);

    /**
     * 软件许可信息
     * @param name
     * @return
     */
    List<SoftContrastCount> softContrast(@Param("name")String name);

    /**
     * 软件许可-mysql
     * @param name
     * @return
     */
    List<SoftContrastCount> softContrastMysql(@Param("name")String name);

    /**
     * 软件用户明细
     * @param name
     * @return
     */
    List<SoftUserDetails> softUserDetails(@Param("name")String name);

    /**
     * 软件模块
     * @param name
     * @return
     */
    List<String> softModule(@Param("name") String name);

    /**
     * 软件模块使用统计
     * @param softwareName
     * @param moduleName
     * @param startDate
     * @param endDate
     * @return
     */
    List<SoftContrastCount> softUsage(@Param("softwareName") String softwareName,
                                      @Param("moduleName") String moduleName,
                                      @Param("startDate") String startDate,
                                      @Param("endDate") String endDate);

    /**
     * 软件模块使用统计-MYSQL
     * @param softwareName
     * @param moduleName
     * @param startDate
     * @param endDate
     * @return
     */
    List<SoftContrastCount> softUsageMysql(@Param("softwareName") String softwareName,
                                      @Param("moduleName") String moduleName,
                                      @Param("startDate") String startDate,
                                      @Param("endDate") String endDate);

    /**
     * 软件统计（Redis）
     * @param todayTime
     * @return
     */
    SoftRedNumber softNumber(@Param("todayTime") String todayTime);

    /**
     * 获得软件模块访问历史
     * @param monthTime
     * @return
     */
    Integer getHistoryVisit(@Param("monthTime") String monthTime);

    /**
     * 获得软件模块访问次数
     * @return
     */
    Integer getHistoryVisitCopy();

    /**
     * 软件许可购买数
     * @param id
     * @return
     */
    Integer getBuyNumber(@Param("id") String id);

    /**
     * 根据id获得软件信息
     * @param id
     * @return
     */
    LicenseSoftware queryOneById(@Param("id") Integer id);

}
